//
//  ApiError.swift
//  JWBaseLib
//
//  Created by 周季伟 on 2017/12/12.
//  Copyright © 2017年 周季伟. All rights reserved.
//

public typealias HTTPStatusCode = Int
public enum ApiError: CustomNSError {
    case library(Error)         // 底层依赖库报错，将URLSession或Alamofire的Error作为附属值
    case http(HTTPStatusCode)   // RESTFUL将status code在200-299之外的认为是错误，这里将status code作为附属值
    case invalidJSON            // 返回的json格式不能解析成我们需要的数据格式
    case noCache                // 缓存读取失败
    public static var errorDomain: String = "com.rebelbird.Api.ApiError"
    public var errorCode: Int {
        switch self {
        case .library:
            return 1001
        case .http:
            return 1002
        case .invalidJSON:
            return 1003
        case .noCache:
            return 1004
        }
    }
}
